home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / hp48.cc < prev    next >
Text File  |  1991-01-29  |  10KB  |  414 lines

  1. 017B0 Error Beep suppressed?
  2. 017B7 frequency = 0?
  3. 02919 push A (System Binary)
  4. 0291C ...
  5. 0291F continue RPL
  6. 02A5C continue RPL
  7. 02D59 save C (popped by RTNNC)
  8. 02D88 return if space available
  9. 02DA5 put rtn ptr in D0 ...
  10. 02DA7 and D0 (PC) in C
  11. 02DAA push PC onto rtn stack ...
  12. 02DAD ...
  13. 02DB0 set B (rtn ptr) ...
  14. 02DB3 ...
  15. 02DB5 inc new PC past 02D9D
  16. 02DB8 get next routine
  17. 02DBB inc PC
  18. 02DBE call next rpl routine
  19. 02E75 push A (addr of 02E6D = addr of local name)
  20. 02E78 ...
  21. 02E7B goto RPL pgm @ 02FD6
  22. 02F15 push A
  23. 02F1B goto RPL pgm @ 02fd6
  24. 03019 flag first time through
  25. 0301C save D1 on RSTK ...
  26. 0301F ...
  27. 03021 save B on RSTK ...
  28. 03023 ...
  29. 03029 second time?
  30. 0302A read next object
  31. 0302E get next object
  32. 03031 skip next object
  33. 03037 get type of RPL Routine
  34. 03041 not RPL Obj Type?
  35. 03046 Literal RPL Object in code - Skip Past
  36. 03066 restore B
  37. 0306A restore D1
  38. 03130 Get Return SP into D0
  39. 03132 ...
  40. 03135 pop rtn stk into A ...
  41. 03138 ...
  42. 0313B set D0 to new PC
  43. 0313E set B (rtn ptr)
  44. 03142 get next routine
  45. 03145 inc PC
  46. 03148 call next RPL routine
  47. 03164 Let C.A = (DEPTH+1) * 5
  48. 03185 BET
  49. 0318D room on stack?
  50. 0318F if not, make some
  51. 03192 get obj @ TOS
  52. 03195 push object again
  53. 0319B continue RPL
  54. 031A9 BET
  55. 031D6 BET
  56. 03228 pop TOS -> C
  57. 0322E copy TOS-1 -> A
  58. 03231 replace TOS-1 with TOS
  59. 03234 push TOS-1
  60. 0323A continue RPL
  61. 03249 pop stack
  62. 0324C more stack space avail
  63. 0324E continue RPL
  64. 0325D pop two objects from the stack
  65. 03260 more stack space avail
  66. 03262 ...
  67. 03264 continue RPL
  68. 032BF BET
  69. 03416 need 1 stack element
  70. 03435 alloc C elements if room
  71. 03437 was room so ok
  72. 0343A out of memory!
  73. 03585 continue RPL
  74. 03678 push A on stack
  75. 0367B continue RPL
  76. 03A86 stack space avail?
  77. 03A88 no, make some
  78. 03A8B push A.A
  79. 03A8E ...
  80. 03A91 continue RPL
  81. 03A9B save A
  82. 03AB0 restore A
  83. 03AB3 stack space avail?
  84. 03AB5 yes, continue
  85. 03AB8 no memory avail!
  86. 03AC5 stack space avail?
  87. 03AC7 nope, make some
  88. 03ACA push A (which is 3AC0)
  89. 03AD0 continue RPL
  90. 03AEF BET
  91. 03B43 BET
  92. 03D53 put TOS -> D1 ...
  93. 03D56 save D1 in A
  94. 03D59 skip obj prolog
  95. 03D5C get obj val ?
  96. 03D5F restore D1
  97. 03D62 pop stack
  98. 03D67 save obj val
  99. 03D69 get TOS -> D1 ...
  100. 03D6C save D1 in C
  101. 03D6F skip prolog
  102. 03D72 get obj val -> A
  103. 03D75 restore D1
  104. 03D78 restore C
  105. 03F5D get obj @ TOS in D1 ...
  106. 03F60 and save D1 in A
  107. 03F63 skip obj prolog
  108. 03F66 get obj value (expect System Binary)
  109. 03F69 restore D1
  110. 03F6C pop stack
  111. 03F71 save <System Binary> on RSTK
  112. 03F73 get obj @ TOS in D1 ...
  113. 03F76 and save D1 in C
  114. 03F79 skip obj prolog
  115. 03F7C get obj val (expect System Binary)
  116. 03F7F restore D1
  117. 03F82 pop stack
  118. 03F85 inc free space
  119. 03F87 restore <System Binary>
  120. 05023 save D0 (PC)
  121. 0533C save TOS
  122. 05352 need #A nibbles
  123. 053A4 save D1 on RSTK ...
  124. 053A7 ...
  125. 053B7 unable to alloc?
  126. 054BD pop stack -> A,R1,D0
  127. 054C9 ...
  128. 054CB skip obj prolog
  129. 054D0 save 0 on RSTK
  130. 0554C already GC?
  131. 055D2 BET
  132. 055E4 len of string+len
  133. 05633 BET
  134. 056C7 copy System Binary val to c
  135. 056C9 copy System Binary val to d
  136. 056CB get obj ptr @ TOS into D0 ...
  137. 056CE ...
  138. 056D1 skip obj prolog (assume composite object, i.e. list)
  139. 056DB B=#0312B
  140. 056DF go if D was == 0
  141. 056E2 get addr from composite object
  142. 056EC go if D was == 0
  143. 05A08 pop stack -> A
  144. 05A0B ...
  145. 05A0E inc free space
  146. 05A16 put obj ptr in D1
  147. 05A19 skip obj prolog
  148. 05A1C get obj size
  149. 05A1F skip obj size
  150. 05A29 sub size fld from obj size
  151. 05A2D obj size >= 5?
  152. 05A32 obj size at least 1?
  153. 05A34 nope, push <0h>
  154. 05A37 put (obj val size)-1 in P ...
  155. 05A3A ...
  156. 05A3E since obj val size < 5, 0 rest of A
  157. 05A40 get obj val into A
  158. 05D29 BET
  159. 05DB9 BET
  160. 05F21 stack space avail?
  161. 05F23 return if so
  162. 05F26 no memory free!
  163. 06537 flag first try for memory
  164. 0653A check if A in ROM System Binary Table
  165. 06544 is A < #2C?
  166. 06555 need 15 nibbles
  167. 0656B compute free space b/w RPL RSTK & Data Stk
  168. 0656D test room for D nibbles
  169. 0656F not enough room?
  170. 06579 Create System Binary from R0
  171. 06593 push obj ptr in A
  172. 0659B second try?
  173. 065A4 flag second try for memory
  174. 065B4 let A.A = 10*A.A
  175. 065C5 compute table index
  176. 065CB check avail space
  177. 065CD go if space avail
  178. 06641 get ptr to Object @ TOS
  179. 06647 Skip Object Prolog
  180. 0664A grab System Binary value
  181. 0664D restore SP
  182. 06650 pop System Binary
  183. 0679B save D0 (i.e. RPL PC)
  184. 067AF save d1 in 70579 ...
  185. 067B2 ...
  186. 067B5 ...
  187. 067BF save B in 70574 ...
  188. 067C1 ...
  189. 067CB save D in 7066E ...
  190. 067CD ...
  191. 0680D Let C = TOS Ptr
  192. 06817 Let A = RPL RSTK Ptr
  193. 0681A Let C = Free Space B/W RSTK & TOS
  194. 06B15 alloc B.A Nibbles ...
  195. 06B18 ...
  196. 06B1A ...
  197. 06E9C get next object
  198. 06E9F save D0 (RPL PC) on RSTK ...
  199. 06EA2 and put command in D0
  200. 06EA4 get object type
  201. 06EB1 is obj not type marker?
  202. 06ECE push to the stack ...
  203. 06ED1 ...
  204. 06ED4 continue RPL
  205. 06F1B BET
  206. 06FD6 get next object
  207. 06FD9 put in D0 and save D0 in A
  208. 06FDC get object's prolog
  209. 06FE6 restore D0
  210. 06FE9 not RPL Object Literal?
  211. 06FEE Let A = D0 ...
  212. 06FF1 ...
  213. 06FF4 if A=C (was RPL Object Literal)
  214. 06FF7 get next object
  215. 06FFA save continue pt in B ...
  216. 06FFC put RPL RSTK PTR in D0
  217. 06FFF pop RPL RSTK
  218. 07002 get previous rtn addr
  219. 07005 put in PC
  220. 07008 restore B; put orig A.A in C
  221. 0700A inc free space (popped rtn stk)
  222. 0700C use orig A.A as RPL cont
  223. 0723F continue RPL
  224. 072E7 point to current loop counter
  225. 07402 save start loop value into R2
  226. 0740B save end loop value into R3
  227. 07DA9 d0 = local var ptr ...
  228. 07DAC ...
  229. 07DAF a = addr first local var
  230. 07DB2 no local vars?
  231. 08DF8 BET
  232. 1401A save D0 in C / Let D0 = 706FF
  233. 1401F set Last Err# to 0
  234. 14022 restore D0 (PC)
  235. 1402F Let @70600 = 0
  236. 14032 restore D0 (PC)
  237. 16812 let C = 10*C
  238. 18852 Save D0
  239. 18863 Store <0h> at 7065A
  240. 18866 Restore D0
  241. 18A27 save D1 (SP)
  242. 18A31 Let A = Bottom/Start of Stack
  243. 18A34 Let A = (DEPTH+1) * 5
  244. 18A4A Set 706FD.1 = 0
  245. 18A4E restore D1
  246. 18AC1 set c.s = 1
  247. 18AC9 get obj(s) on TOS (depends on P)
  248. 18ACD save obj ptr(s) in R0
  249. 18AD0 save D1 (SP) on RSTK ...
  250. 18AD3 ...
  251. 18ADC get BOS ptr into A
  252. 18ADF get size of stack * 5 in A
  253. 18AE1 set P to (#obj)*5
  254. 18AE5 P=0; C.0 = 5 or 0xA
  255. 18AF0 not enough on stack?
  256. 18AF5 compute (DEPTH-args)*5
  257. 18AF7 save (DEPTH-args)*5
  258. 18B12 restore obj ptrs
  259. 18B15 save obj ptrs
  260. 18B2A save # args in 705ba???
  261. 18B2E restore D1 ...
  262. 18B30 ...
  263. 18B35 (7069f) = stack size * 5
  264. 18B3F set nibble @ 706fd to 0 ...
  265. 18B42 ...
  266. 18B46 restore D1 (SP) ...
  267. 18B48 ...
  268. 18C77 save D0 in A
  269. 18C7D compute Current Command value
  270. 18C8A store command
  271. 18C8D restore D0
  272. 18CE3 force positive
  273. 18CF8 is it positive?
  274. 18CFD otherwise 0
  275. 18D03 set A.A to largest System Binary ...
  276. 18D05 ...
  277. 18D11 continue RPL
  278. 18D1B handle 0
  279. 18FBA save D0 on RSTK ...
  280. 18FBD ...
  281. 18FC0 ...
  282. 18FC5 save D1 on RSTK ...
  283. 18FC8 ...
  284. 18FCA ...
  285. 18FCD get next object
  286. 18FD7 at end of RPL Pgm?
  287. 18FE3 not System Binary literal?
  288. 18FE8 skip prolog (02911)
  289. 18FEB get value in C
  290. 18FEE No Carry is True
  291. 18FF1 save D0 in A and
  292. 18FF4 skip obj prolog
  293. 18FF7 get obj value (expect System Binary?)
  294. 18FFA restore D0
  295. 18FFD skip over object
  296. 19009 flag C.0 < F
  297. 19012 flag C.0 was F
  298. 19017 save C on RSTK
  299. 19019 Let C.A,A.A = C.P ...
  300. 1901B ...
  301. 1901E ...
  302. 19020 Let A.A = 5 * A.A ...
  303. 19022 ...
  304. 19024 ...
  305. 19026 was C.0 == F?
  306. 1908B goto RPL
  307. 1A560 pop -> C
  308. 1A566 inc free space
  309. 1A568 save D1 in C; Let D1=obj ptr
  310. 1A56B skip obj prolog
  311. 1A56E get obj val (expect System Binary)
  312. 1A571 restore D1
  313. 1C6EE continue RPL
  314. 29FDA get obj ptr @ TOS into D1 ...
  315. 29FDD and save D1 in C
  316. 29FE0 skip obj prolog
  317. 29FE3 get obj val (expect Real)
  318. 29FE7 restore D1
  319. 29FEA pop stack
  320. 29FED inc free space
  321. 2A195 save A
  322. 2A198 restore A (ENTRY POINT)
  323. 2A1CF save D0 in A ...
  324. 2A1D2 ...
  325. 2A1DC construct real @ D0 with value of R0
  326. 2A1EF push new Real
  327. 2A735 BET
  328. 2A768 BET
  329. 2A785 BET
  330. 2A796 BET
  331. 2A79E put TOS -> D1 ...
  332. 2A7A1 save D1 in C
  333. 2A7A4 skip prolog
  334. 2A7A7 get obj val -> A (expect Real?)
  335. 2A7AB restore D1
  336. 2A7AE negative?
  337. 2A7B3 zero?
  338. 2A7B8 BET
  339. 2A867 continue RPL
  340. 2A87C BET
  341. 2A8ED BET
  342. 2A94C BET
  343. 2A958 BET
  344. 2A9A3 BET
  345. 2AA9B BET
  346. 2AAF3 BET
  347. 4452C BET
  348. 51A38 XFER: contine RPL
  349. 5375A signal use User Flags
  350. 53766 signal use System Flags
  351. 53F8D set up stack as popped
  352. 53F99 get obj @ TOS in D1 ...
  353. 53F9C ...
  354. 53F9F skip obj prolog
  355. 53FA2 get obj val (expect System Binary)
  356. 53FB0 Let D = <System Binary> - 5 - 1
  357. 53FB2 pop stack
  358. 53FBE Let C = C >> 2
  359. 53FC1 and Set SB if (C & 3) != 0
  360. 53FC4 Now C.B = (C.B / 4) - 1
  361. 53FCF save C
  362. 53FD9 restore C
  363. 5422C save A ???
  364. 5422F clear tried GC flag
  365. 54238 save C ???
  366. 5427B save A.A
  367. 5428C restore A.A
  368. 54407 if positive, ok
  369. 5EDBE C = s1
  370. 5EDC1 C = d1, D1 = s1
  371. 5EDC4 A = prolog of s1
  372. 5EDC7 Restore D1
  373. 61219 BET
  374. 618DF unpop one System Binary
  375. 61907 pop stack
  376. 61930 BET
  377. 61954 TOS was == FALSE?
  378. 61957 pop stack
  379. 6195A inc free space
  380. 619B9 BET
  381. 619C8 BET
  382. 61A02 pop stack -> A ...
  383. 61A05 ...
  384. 61A08 inc free stack space
  385. 61A11 set carry if was True
  386. 61A38 BET
  387. 61ADD Let C = D0 ...
  388. 61AE0 ...
  389. 61AE3 and save D0 on RSTK
  390. 61B09 save D0 on RSTK
  391. 61B0E ...
  392. 61B28 get object of interest
  393. 61B2E get object type in A
  394. 61B42 BET
  395. 6205B save C (obj prolog to test for)
  396. 6205D get TOS -> D1 ...
  397. 62060 save D1 in C
  398. 62063 get obj prolog
  399. 62066 restore D1
  400. 62069 restore C
  401. 6206B obj has right type?
  402. 62080 replace TOS w/True
  403. 620A0 replace TOS w/False
  404. 620CC execute True
  405. 620CE which pushes 03A81 as obj ptr
  406. 620E5 execute False
  407. 620E7 which pushes 03AC0 as obj ptr
  408. 62100 BET
  409. 628AC set Carry if C>A
  410. 717E7 expect (D0) to be LSTR
  411. 717E9 get LSTR len
  412. 717EC skip past len
  413. 71811 len * 2 = # nibbles
  414.